// 同步代码 瞬间执行完
// 解释的问题出来了？同步代码都会跟看到的不一样
// 变量提升 
// 背后有个什么机制,执行栈,2个阶段
// 代码的编译阶段 很快的执行完
// 代码的执行阶段 a 已经提前完成了声明，变量提升
// java c javac a.java 编译阶段(错误，变量的声明 作用域 ) .class 运行 .class
// js 中变量不是 独立存在的，变量类型由值决定，在特定的作用域下声明
// 作用域 优先于变量存在的 全局作用域 在执行栈中执行时 
// 变量提升 
// lhs rhs
// 在js中要使用变量，到相应的作用域找出来 那个他
a=1;
var a;// 申请了a undefined
console.log(a);// undefined ? 1